package com.ostrich.cloud.ostrichOrderService.service.service;

import com.ostrich.cloud.common.result.PageResult;
import com.ostrich.cloud.ostrichOrderService.infra.model.Order1;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ostrich.cloud.ostrichOrderService.infra.param.*;
import com.ostrich.cloud.ostrichOrderService.model.dto.*;
import io.seata.core.exception.TransactionException;
import jodd.cli.Param;

import java.util.List;

/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author Lucas
 * @since 2022-10-26
 */
public interface Order1Service extends IService<Order1> {
    void CreateOrder(CreateParamInfra param) throws TransactionException;
    void cancelOrder(Long orderNo) throws TransactionException;
    PageResult<ShoppingDto> searchOrder(Long orderNo, Integer current, Integer size);
    String pay(Long orderNo,String url,Integer payType);
    String payMoney(AliPay aliPay);
    void changeStatusByAliPay(String tradeNo);
    String group(AddGroupParamInfra paramInfra);
    OrderDto secKill(AddKillParamInfra paramInfra);
    void changeDeliveryInfo(Integer riderId,Integer deliveryId,Long orderNo);
    OrderAllGoods searchUserOrder(Long orderNo);
    List<CustomerOrders>customerFindOrders(int parentId);
    void changeOrderLocation(Long orderNo,Integer locationId) throws TransactionException;
    PageResult<StoreOrderDto> StoreOrderFind(StoreOrderSearchParamInfra param);
    void userCancelOrder(Long orderNo) throws TransactionException;
    void changeOrderStatusByStore(Long orderNo);
    void SecKillCancel(Long orderNo) throws Exception;
    void userCancelSecKill(Long orderNo) throws Exception;
    void cancelGroup(Long orderNo);
    void userCancelGroup(Long orderNo);
    void cancelAllGroup(Integer groupbySn);
    PageResult<UserOrderDto> userFindAllOrder(int current,int size);
    List<GroupCustomerDto> getGroupCustomer(Integer groupbySn);
}
